/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package model;

import java.util.HashSet;

/**
 *
 * @author Stijn Delbeke
 */
public class PionType {

    private HashSet<PionType> verslaat_ = new HashSet<PionType>();
    private String naam;
    public static final PionType VLAG = new PionType();
    public static final PionType MAARSCHALK = new PionType();
    public static final PionType GENERAAL = new PionType();
    public static final PionType KOLONEL = new PionType();
    public static final PionType MAJOOR = new PionType();
    public static final PionType KAPITEIN = new PionType();
    public static final PionType LUITENANT = new PionType();
    public static final PionType SERGEANT = new PionType();
    public static final PionType MINEUR = new PionType();
    public static final PionType VERKENNER = new PionType();
    public static final PionType SPION = new PionType();
    public static final PionType BOM = new PionType();

    static {
        VLAG.defVerslaat();
        VLAG.naam = "VLAG";
        MAARSCHALK.defVerslaat(VLAG, GENERAAL, KOLONEL, MAJOOR, KAPITEIN, LUITENANT, SERGEANT, MINEUR, VERKENNER, SPION);
        MAARSCHALK.naam = "MAARSCHALK";
        GENERAAL.defVerslaat(VLAG, KOLONEL, MAJOOR, KAPITEIN, LUITENANT, SERGEANT, MINEUR, VERKENNER, SPION);
        GENERAAL.naam = "GENERAAL";
        KOLONEL.defVerslaat(VLAG, MAJOOR, KAPITEIN, LUITENANT, SERGEANT, MINEUR, VERKENNER, SPION);
        KOLONEL.naam = "KOLONEL";
        MAJOOR.defVerslaat(VLAG, KAPITEIN, LUITENANT, SERGEANT, MINEUR, VERKENNER, SPION);
        MAJOOR.naam = "MAJOOR";
        KAPITEIN.defVerslaat(VLAG, LUITENANT, SERGEANT, MINEUR, VERKENNER, SPION);
        KAPITEIN.naam = "KAPITEIN";
        LUITENANT.defVerslaat(VLAG, SERGEANT, MINEUR, VERKENNER, SPION);
        LUITENANT.naam = "LUITENANT";
        SERGEANT.defVerslaat(VLAG, MINEUR, VERKENNER, SPION);
        SERGEANT.naam = "SERGEANT";
        MINEUR.defVerslaat(VLAG, VERKENNER, SPION, BOM);
        MINEUR.naam = "MINEUR";
        VERKENNER.defVerslaat(VLAG, SPION);
        VERKENNER.naam = "VERKENNER";
        SPION.defVerslaat(VLAG, MAARSCHALK);
        SPION.naam = "SPION";
        BOM.defVerslaat();
        BOM.naam = "BOM";

    }

    private void defVerslaat(PionType... verslaanbaar) {
        for (PionType pt : verslaanbaar) {
            verslaat_.add(pt);
        }
    }

    public boolean verslaat(PionType pt) {
        return verslaat_.contains(pt);
    }

    public String getNaam() {
        return naam;
    }
}
